SpeedTouch Links

En Español

Home
Firmware Extractor
Fedora Core
Warty Ubuntu
Mandriva
SuSE
Linux From Scratch
Xbox Live! Masquerading
FAQ
Help (mailing list)
Tux riding the SpeedTouch
SourceForge Logo

The Linux Kernel SpeedTouch Driver And Ubuntu

If you're using Warty Warthog, please follow the Warty page. It uses an older kernel and needs to use modem_run to load the firmware into the modem.

Which Firmware?

Different versions of the modem use different firmware. If you're not sure what revision of modem you have you can find out with the command

awk '/4061/ { print $5 }' /proc/bus/usb/devices

It should print out the revision number of your modem

If you already have firmware you know works with your modem then stick with that. If you have an old green revision 0 or a revision 2 modem (they're usually purple/burgundy but some are silver) the KQD6_3.012 file from this zip file is the firmware to use. That zip also holds the ZZZL_3.012 firmware for the (silver) revision 4 modem, so most people will use the firmware from that zip.
The old green rev 0's can be temperamental. If it doesn't like the KQD6_3.012, try the mgmt.o firmware from this tarball

Other Stuff

You'll need to prepare the firmware with a copy of the firmware extractor. You can get a precompiled binary or you can get the source and compile it yourself (but you'll need to install gcc for that). Also, save a copy of this page (right click, Save Page As...) then you can open it with a browser and copy and paste the commands.

Before you go into that offline environment, consult this table and note whether your ISP uses PPPoATM or PPPoE. You'll also need to know the VPI/VCI numbers for your country/ISP.

If your ISP uses PPPoE you will need a copy of the, br2684ctl bridging utility.

Save everything on a floppy disk, flash memory stick or something then when you've rebooted into Ubuntu, copy it all into your home folder.

Reboot Into Ubuntu

Install the firmware

Everyone needs to do this. You'll need to choose the right firmware for your particular modem.

First, unzip the firmware and use the firmware-extractor to split it into two parts, speedtch-1.bin and speedtch-2.bin
chmod +x firmware-extractor will make sure it's executable. If you get any errors like `cannot find such and such' or `No such file or directory' you may have forgotten to copy these things into your home folder, or perhaps they got renamed somehow?

If you've got a revision 0 or revision 2 modem use the KQD6_3.012 firmware

unzip SpeedTouch330_firmware_3012.zip &&
chmod +x firmware-extractor &&
./firmware-extractor KQD6_3.012

For a revision 4 modem it's basically the same but with the ZZZL_3.012 firmware

unzip SpeedTouch330_firmware_3012.zip &&
chmod +x firmware-extractor &&
./firmware-extractor ZZZL_3.012

If you've got some other firmware file you want to try, split it in two with the firmware-extractor in the same way

chmod +x firmware-extractor &&
./firmware-extractor /path/to/your/firmware

If that went OK you should now have a speedtch-1.bin and speedtch-2.bin in your home folder. Ubuntu used to keep firmware in /lib/hotplug/firmware but with Dapper Drake Ubuntu has moved into line with everyone else and now stores firmware in /lib/firmware. So, if you're using an older (pre Dapper) version use these commands

sudo cp speedtch* /lib/hotplug/firmware

And if you're using Dapper Drake, do this:

sudo cp speedtch* /lib/firmware

Secrets

Now you need to create a file called either chap-secrets or pap-secrets. If you don't know whether your ISP uses chap or pap authentication then change both files. It won't do any harm. Open a text editor and put just one line in it like this

"username@isp" "*" "password"

Change username@isp for the username your ISP gave you and change password for the password you got when you set up your account with your ISP. Don't miss out the spaces in the " "*" " bit.
Save the file in your home folder and call it secrets. Now copy it into /etc/ppp

sudo install -m 600 secrets /etc/ppp/chap-secrets &&
sudo install -m 600 secrets /etc/ppp/pap-secrets

If your ISP uses PPPoE skip down to the PPPoE section

PPP Over ATM

If your ISP uses PPP over ATM use this as a template to create the configuration file to set up pppd. Call the file speedtch. Open a text editor and copy this into it but change username@isp for the username your ISP knows you by. Often (but not always) it has an @isp bit at the end. For example it may be something like john.doe@dsl2.bt
Also, change the 0.00 at the bottom for the VP/VC values for your country/ISP.

noipdefault
defaultroute
user 'username@isp'
noauth
updetach
usepeerdns
plugin pppoatm.so
0.00

### If the firmware loads but pppd won't
### connect, uncomment this option to make
### pppd be more verbose in the system log

# debug

### For more details (and more options)
### Read man pppd

Save it in your home folder as speedtch then copy it to /etc/ppp/peers with the command

sudo install -m 600 speedtch /etc/ppp/peers

Make a Bootscript

Open a text editor and copy this into it

#!/bin/bash
modprobe ppp_generic
modprobe pppoatm
count=0
while [[ $((count++)) -lt 40 ]]
do
  sync=$(dmesg | grep 'ADSL line is up')
  if [ ! -z "$sync" ]
  then
    pppd call speedtch
    exit 0
  fi
  sleep 1
done
echo "The SpeedTouch firmware did not load"

Save it in your home folder and call it dial, then -

sudo install -m 744 dial /etc/init.d &&
sudo ln -s ../init.d/dial /etc/rc2.d/S95dial &&
sudo ln -sf ppp/resolv.conf /etc/resolv.conf

And that's it, reboot and you should be online.

If not, is the firmware is loading OK? Once the kernel has loaded the speedtch module the left LED should stay green while the right LED flashes eight or nine times (and then stays green).

If the firmware loads but ppp can't connect with your ISP check the details you put in /etc/ppp/*-secrets and /etc/ppp/peers/speedtch. Also try adding the option 'debug' to /etc/ppp/peers/speedtch, it will then be more verbose in the system log (/var/log/syslog). Also check /var/log/messages.
Please report any problems to the mailing list

When you've finished, none of the detritus left in your home folder is needed. You should probably delete the files with your ISP details in them for securities sake.
Now you're online, you can fetch new stuff off t'internet
Edit /etc/apt/sources.list and run apt-get update. You should do it by hand, but if you want to be lazy, run

sudo sed -i 's@# d@d@g' /etc/apt/sources.list &&
sudo apt-get update

Then you can install all sorts of new things. For more details read

man apt-get

PPPoE

If your ISP uses PPPoE then things are a bit more complicated as you'll need to create a bridging connection with br2684ctl to run PPPoE over ATM. Install the br2684ctl tool

sudo install -m 755 br2684ctl /usr/sbin

Open a text editor and copy and paste this into it but change username@isp for the username your ISP knows you by. It often has an @isp bit at the end (it might be @bt, for example). Save it in your home folder and call it speedtch.

noipdefault
defaultroute
user 'username@isp'
noauth
updetach
usepeerdns
plugin rp-pppoe.so
nas0

### If the firmware loads but pppd won't
### connect, uncomment this option to make
### pppd be more verbose in the system log

# debug

### For more details (and more options)
### Read man pppd

If you're interested to know more about what each of those options does (perhaps you want to tweak them?) open a shell and type man pppd
Copy it to /etc/ppp/peers with the command

sudo install -m 600 speedtch /etc/ppp/peers

Make A Bootscript

Open a text editor, copy this into it and save it in your home folder. Call it dial. Change VP.VC for the VPI/VCI numbers for your country/ISP. For example in Spain it's 8.32

#!/bin/bash
modprobe ppp_generic
modprobe pppoatm
modprobe br2684
count=0
while [[ $((count++)) -lt 40 ]]
do
  sync=$(dmesg | grep 'ADSL line is up')
  if [ ! -z "$sync" ]
  then
    br2684ctl -b -c 0 -a VP.VC
    sleep 3
    ifconfig nas0 192.168.0.1 netmask 255.255.255.0 up
    sleep 10
    pppd call speedtch
    exit 0
  fi
  sleep 1
done
echo "The SpeedTouch firmware did not load"

Now with these commands,

sudo install -m 744 dial /etc/init.d &&
sudo ln -s ../init.d/dial /etc/rc2.d/S95dial &&
sudo ln -sf ppp/resolv.conf /etc/resolv.conf

Reboot and you should be online.

If not, is the firmware is loading OK? Once the kernel has loaded the speedtch module the left LED should stay green while the right LED flashes eight or nine times (and then stays green).

If the firmware loads but ppp can't connect with your ISP check the details you put in /etc/ppp/*-secrets and /etc/ppp/peers/speedtch. Also try adding the option 'debug' to /etc/ppp/peers/speedtch, it will then be more verbose in the system log (/var/log/syslog). Also check /var/log/messages.
Please report any SpeedTouch problems to the mailing list

When you've finished, none of the things left in your home folder are needed. You should probably delete the files with your ISP details in them for security.
Now you've got your internet connection sorted out you might want to edit /etc/apt/sources.list to your taste and then run

sudo apt-get update

Then you can install all sorts of new things off the internet. For more details read

man apt-get